Gateway assisted diagnostics and repair

ABSTRACT

System and techniques for gateway assisted diagnostics and repair are described herein. A request for assistance may be received from a client device at a gateway device attached to a local area network (LAN) and a wide area network (WAN). The request for assistance may include an indication of an event experienced by the client device. The request for assistance may be forwarded to a management controller of the gateway device. Instructions may be transmitted to the client device via the LAN for resolving the event experienced by the client device.

TECHNICAL FIELD

Embodiments described herein generally relate to computer diagnosticsand repair and, in some embodiments, more specifically to gatewayassisted diagnostics and repair.

BACKGROUND

Computer networks are comprised of a collection of computing devices andnetwork equipment. Computing devices sometimes develop issues orfailures that may be unrecoverable without assistance. Client managementsystems may aid a computing device in recovering from an issue orfailure.

BRIEF DESCRIPTION OF THE DRAWINGS

In the drawings, which are not necessarily drawn to scale, like numeralsmay describe similar components in different views. Like numerals havingdifferent letter suffixes may represent different instances of similarcomponents. The drawings illustrate generally, by way of example, butnot by way of limitation, various embodiments discussed in the presentdocument.

FIG. 1 is a block diagram of an example of a system for gateway assisteddiagnostics and repair, according to an embodiment.

FIG. 2 illustrates a flow diagram of an example of a process for gatewayassisted diagnostics and repair, according to an embodiment.

FIG. 3 illustrates an example of a method for gateway assisteddiagnostics and repair, according to an embodiment.

FIG. 4 illustrates an example of a cloud and Internet of Things (IoT)mesh network topology, according to an embodiment.

FIG. 5 is a block diagram illustrating an example of a machine uponwhich one or more embodiments may be implemented.

DETAILED DESCRIPTION

Out of band remote management of a computing client may be accomplishedthrough the use of a management controller (e.g., a management engine orsecurity co-processor, a desktop and mobile architecture for systemhardware (DASH) compliant network interface card (NIC), etc.) coupled tothe computing client and a remote management console (e.g., activemanagement technology (AMT), MeshCentral, DASH, etc.). When a computingclient system is down (e.g., due to a hard disk crash, etc.) the remotemanagement console may issue some diagnostics commands to the computingclient (e.g., remotely run a set of diagnostic programs, etc.) throughan out of band management controller. In some examples, the managementconsole may invoke the computing client to perform a boot redirectionand boot an OS image from remote network storage.

Remote diagnostics and remote boot may take a significant amount of timeas the diagnostic program or boot image may be executed by the computingclient through a network from the remote storage location. For example,booting a recovery operating system (OS) and/or tool platform (e.g.,Windows PE, etc.) from a remote image from the remote storage locationmay take more than 30 minutes on a low bandwidth network or if there isa network bottleneck between the remote storage that contains the imageand the computing client. In some cases, excessive network latencies ora network disruption may cause the boot process to timeout or fail.

These performance issues may be reduced by enabling a gateway (e.g.,edge network device, router, fog gateway, etc.) to assist in remotediagnostic and repair of its local area network (LAN) connected clientcomputing devices to reduce the time needed to diagnose and fixcomputing client issues and to increase the remote managementcapabilities and reliability of a remote management solution.

When a client computing device that is connected to a gateway's LANinterface is provisioned (e.g., provisioned for AMT remote management,etc.) the client computing device may store some diagnostics and systemrepair applications and a backup OS image in a local storage of thegateway. When a management controller of the client computing devicedetects an issue with the client computing device (e.g., a boot failure,a crash, etc.), the management controller automatically invokes theclient computing device to transmit a client initiated request forassistance (CIRA) to a gateway for the client computing device's LAN.The in response to the CIRA, the gateway may assist the client computingdevice to perform one or more of following: run a first level diagnosticand system repair application from the local storage of the gateway andtry to resolve the issue, redirect the client computing device to bootan OS using a backup image in the local storage of the gateway, raise analarm to a remote management console or an IT administrator to remotelyrun additional diagnostics and repair the client computing device. Insome embodiments, the management controller may transmit a CIRA to thegateway causing an application processor of the gateway to execute andrun a diagnostics and repair application stored in its local storage tofix the faulty client computing device.

The client computing device may communicate with its LAN gateway througha unique communication channel wherein the gateway is configured tosnoop/filter for management network packets that come from its LAN ports(e.g., from managed client computing devices that connected to thegateway's LAN network interfaces rather that from devices connected toits WAN network interfaces) targeting a reserved management port number(e.g., a reserved AMT redirection port, etc.).

The systems and techniques described herein provide automatic firstlevel diagnostics and self-repair of managed client computing devices(e.g., from a CIRA utilizing a gateway that is in close networkproximity to the managed client, etc.) before the client raises an alarmto a remote administrator. This differs from conventional systems thatmay immediately raise an alarm to an administrator when an issue isdetected (e.g., the client computing device consistently failed to boot,crashes, etc.).

By providing the ability to store diagnostic and repair data in localstorage of the gateway, a client computing device's vendor may beprovided with a value added option to store device specific diagnosticsand repair programs as well as a backup OS image of the device in astorage location that is in close network proximity to the clientcomputing device instead of having to store them on a remote cloudnetwork storage of the vendor or a reserved partition of the clientcomputing device's hard drive. Thus, the client computing device is ableto perform automatic self-diagnostics and repair using the vendorprovided diagnostics and repair application even when its hard drivefails and all reserved partitions are non-accessible or when thevendor's cloud network storage is temporarily non-accessible due tonetwork issues. Storing diagnostics and repair programs and backup OSimages in a local storage location of the gateway that is in closenetwork proximity to the client computing device (e.g., on a closest LANgateway to where the managed client computing device is connected) mayreduce the time to diagnose and repair a client computing device.

Furthermore, more sophisticated diagnostics and repair programs may beenabled to be stored in the local storage of the gateway to perform amore holistic diagnostic and repair of a client computing device. Inconventional client management systems, diagnostic programs may be keptsimple because keeping the diagnostic program simple reduces the overalltime needed for a client computing device to execute a diagnostic testfrom a remote storage location. Because storing diagnostic and repairdata in local storage of a gateway in the client computing device's LANenables a diagnostic test to be executed with reduced time, moreholistic tests or larger (e.g., more complete) OS images may be used fordiagnosing and fixing the client computing device. Reliance ondependencies for fast and reliable diagnostics and repair of a clientcomputing device such as WAN network efficiency and reliability may bereduced through the systems and techniques described herein. Thus, fastand reliable first level diagnostics of a client computing devicedependencies may be reduced to LAN network efficiency and reliability.

FIG. 1 is a block diagram of an example of a system 100 for gatewayassisted diagnostics and repair, according to an embodiment. The system100 may include a gateway 105 (e.g., router, edge gateway, fog gateway,wireless router, internet of things (IoT) gateway, etc.). The gateway105 may provide network connectivity between client computing devices160 connected to a local area network (LAN) 155 to devices accessibleover a wide area network (WAN) 175. The LAN 155 may be a networkinterconnecting a variety of client computing devices 160 and may be awired or wireless network. The client computing devices 160 may includea variety of devices including desktop computers, server computers,laptop computers, IoT devices, fog devices, tablet devices, smartphones,wearable devices, embedded computing devices etc. The WAN 175 mayprovide connectivity to a variety of devices outside of the LAN 155 suchas for example, another gateway, an IoT device, other computing devices,etc.

The gateway 105 may include a variety of components including aprocessor 110 (e.g., processor 502 as described in FIG. 5, etc.), amemory 115 (e.g., main memory 504 as described in FIG. 5, static memory506 as described in FIG. 5, etc.), a management controller 120, reservedmanagement network port 125, processor instructions 130 (e.g.,instructions 524 as described in FIG. 5, etc.), local storage 135 (e.g.,mass storage 516 as described in FIG. 5, etc.), a local area networktransceiver 145 (e.g., network interface device 520 as described in FIG.5, etc.), and a WAN transceiver 170 (e.g., network interface device 520as described in FIG. 5, etc.).

The local storage 135 may store a variety of data used in deliveringgateway assisted diagnostics and repair such as diagnostics and repairapplications 140, backup operating system (OS) image 146, an storeddiagnostics log 150. The diagnostics and repair applications 140 mayinclude a variety of software applications used that may be run on aclient computing device (e.g., a client computing device of clientcomputing devices 160) to diagnose and repair issues (e.g., failures,crashes, etc.) with the client computing device 160. For example, a harddrive consistency checking and repair application may be stored fordiagnosing and repairing a hard drive of the client computing device160. The backup OS image may include software images for restoring theOS to the client computing device 160 and/or for booting the clientcomputing device 160 with a temporary OS used to running diagnostic andrepair applications. For example, an image may be stored that, whenapplied to the client computing device 160, restores the operatingsystem of the client computing device 160 to an originally deployedconfiguration. The stored diagnostics log 150 may include log data fromoperations conducted between the gateway 105 and a client computingdevice 160.

The LAN transceiver 145 may connect the LAN 155 to the gateway 105. TheLAN 155 may include client computing devices 160 that may be directlyconnected to the gateway 105 or may be connected to the gateway 105through a hub 165. The WAN transceiver 170 may connect the gateway 105to the WAN 175. The WAN 175 may include a remote management console 180.The remote management console 180 may provide diagnostic and repairinformation to an administrator of the client computing devices 160.

A client computing device 160 may be provisioned for gateway assisteddiagnostics and repair with the gateway. The client computing device 160may include a management controller that is active while power isapplied to the computing device. The client computing device'smanagement controller may detect issues with the computing device andcommunicate requests for assistance to the gateway 105 (e.g., using atransceiver of the client device, etc.). The client computing device 160is connected to the LAN 155 via the LAN transceiver 145 (e.g., via wiredconnection, wireless connection, etc.) of the gateway 105. Additionalclient computing device vendor specific diagnostics and repairapplications (e.g., diagnostics and repair applications 140), a backupOS image and/or a tool image (e.g., Windows PE, backup OS image 146,etc.) may be stored in the local storage 135 of the gateway 105. Anetwork port number of the gateway 105 is reserved for remote managementnetwork packet filtering and/or reception (e.g., reserved networkmanagement port 125). The gateway 105 is configured to snoop and/orfilter traffic on the LAN transceiver 145 (or a subset of its LAN portsthat are connected to client computing devices 160) for managementnetwork packets from client computing devices 160.

Management communication between the client computing device 160 and thegateway 105 may be established using a variety of techniques such as,for example, the client computing device 160 may send a managementnetwork packet using its LAN 155 subnet broadcast IP address and thereserved management network port 125 number and the gateway 105 maydetect the LAN 155 subnet broadcast address from its LAN 155 port andinspects the port number. If the port number matches the reservedmanagement network port 125 number, the gateway 105 may interpret thepacket as a management packet and route the packet to the managementcontroller 120 of the gateway 105 without broadcasting the packet.

In some embodiments, the client computing device 160 may send amanagement network packet using the WAN 175 network interface IP addressof the gateway 105 and the reserved management network port 125 numberand the gateway 105 may detect the packet with an IP address of its WAN175 network interface received from its LAN 155 network port and mayinspect the port number. If the port number matches the reservedmanagement network port 125 number, the gateway 105 may interpret thepacket as a management packet and route the packet to the managementcontroller 120 of the gateway 105 without further forwarding the networkpacket through another gateway (e.g., the WAN transceiver 170, etc.).

In some embodiments, the client computing device 160 may send amanagement network packet (e.g., client initiated request for assistanceCIRA, etc.) to the gateway 105 using a unique subnet IP address assignedto its LAN 155 gateway 105 and the reserved management network port 125number. In some embodiments, the gateway 105 may inspect and/or filter aport number from any incoming network packets from all its LAN 155 portsand route the packets to the management controller 120 of the gateway105 if the packet port number matches the reserved management networkport number 125 irrespective of the network packet's destination IPaddress. Management network packets with the reserved management networkport number 125 received from the WAN 175 network interface of thegateway 105 may be selectively ignored through a fire wall to preventexternal hackers from accessing the local storage 135 of the gateway105.

The LAN transceiver 145 of the gateway 105 may receive (e.g., using thereserved management network port 125, etc.) a request for assistancefrom a client computing device 160 (e.g., a CIRA, etc.). The request forassistance may include an indication of an event experienced by theclient computing device 160. For example, a management controller of theclient computing device 160 may determine that the client computingdevice 160 has failed to boot an OS and the management controller of theclient computing device 160 may transmit a CIRA to the gateway 105including an indication that the OS has failed to load properly.

The request for assistance (e.g., CIRA, etc.) may be forwarded (e.g., bythe LAN transceiver 145, etc.) to the management controller 120 of thegateway device 105. The CIRA request including the indication that theclient computing device 160 has failed to load an OS may be forwarded tothe management controller 120 for processing. The gateway 105 maydetermine that a CIRA has been received using a variety of techniques.In some examples, the gateway 105 may identify traffic including thereserved management network port 125 number as a request for assistance.

In some examples, a broadcast data packet may be received using a LANport (e.g., a LAN port of the LAN transceiver 145) of the gateway 105and the broadcast data packet may be identified as a request forassistance based on a port number (e.g., the reserved management networkport 125) included in a header of the broadcast data packet. In anexample, the broadcast data packet may be prevented from being forwardedto other LAN ports of the gateway device upon forwarding the request forassistance to the management controller 120. For example, once thepacket is identified as a request for assistance the packet may beremoved from the network by the gateway 105 to reduce traffic on the LAN155.

In some examples, a data packet destined for a WAN interface (e.g., WANtransceiver 170) of the gateway 105 may be received (e.g., by the LANtransceiver 145) and the data packet destined for the WAN interface maybe identified as a request for assistance based on a port number (e.g.,the reserved management network port 125) included in a header of thedata packet destined for the WAN interface. In an example, the datapacket destined for the WAN interface may be prevented from reaching theWAN interface upon forwarding the request for assistance to themanagement controller 120. For example, once the packet is identified asa request for assistance the packet may be removed from the network bythe gateway 105 to reduce traffic on the WAN 175.

Instructions may be transmitted (e.g., by the LAN transceiver 145, etc.)to the client computing device 160 for resolving the event experiencedby the client computing device 160. The processor instructions 130 mayinclude a variety of instruction selection algorithms (e.g., if-then,pattern matching, etc.) that may be used by the management controller120 to select instructions to transmit to the client computing device160 based on the event experienced. In an example, the instructions tothe client computing device 160 for resolving the event may includeinstructions to run a diagnostic and repair application from the localstorage 135 (e.g., diagnostics and repair applications 140) of thegateway 105. For example, the client computing device 160 may havefailed to boot an operating system and the instructions may include ahard drive consistency and repair application that the managementcontroller of the client computing device 160 may run to verify theintegrity of the hard drive and repair any issues detected during theconsistency check.

In an example, the instructions to the client computing device 160 forresolving the event may include instructions to store diagnostic logfiles in the local storage 135 (e.g., stored diagnostic log 150) of thegateway 105. For example, a log file containing an identity of theclient computing device 160 and the issue experienced may be stored inthe local storage 135 of the gateway 105. The stored diagnostic log 150may be used by an administrator in troubleshooting issues with theclient computing devices 160. In some examples, the stored diagnosticlog 150 may be transmitted to the remote management console 180 fordisplay on a display device.

In an example, the instructions to the client computing device 160 forresolving the event may include instructions to reboot the clientdevice. For example, the client computing device 160 may have failed toboot the operating system and the instruction may include instructionsfor the management controller of the client computing device 160 toreboot to reattempt loading the operating system. In an example, theinstructions to the client computing device 160 for resolving the eventmay include instructions to reset the client computing device 160. Forexample, the client computing device 160 may be configured with firmwareconfiguration options and may be malfunctioning and the instructionstransmitted to the client computing device 160 may include instructionsto the management controller in the client computing device 160 to resetthe client computing device 160 (e.g., to default configuration, factorynew configuration, etc.)

In an example, the instructions to the client device for resolving theevent may include instructions to boot the client computing device 160from an operating system image stored in a local storage 135 of thegateway 105. For example, the client computing device 160 may havefailed to load the operating system and the instructions may includeinstructions that cause the management controller of the clientcomputing device 160 to download and boot the client computing device160 from an operating system image obtained from the gateway 105. Insome examples, the image may be used to reinstall the operating systemon the client computing device 160. The OS image may be a default and/orstandard software configuration for the client computing device 160,upon installation, may return the client computing device 160 to anoperational state (e.g., able to boot the operating system, etc.). Inanother example, the client computing device 160 may be unable to bootto an operating system and the instructions may include instructions toload a utility operating system so that diagnostic and repairapplications may be executed on the client computing device 160. Forexample, the management controller of the client computing device 160may use a pre-installation operating system to begin installation of afull operating system or to run complex diagnostics on components of theclient computing device 160 and the image for the pre-installationenvironment may be downloaded and used to boot the client computingdevice 160.

In an example, the instructions to the client computing device 160 forresolving the event may include instructions to boot the clientcomputing device 160 using a diagnostic software package stored in alocal storage device 135 of the gateway device 105. For example, theclient computing device 160 may have failed to boot and the instructionmay include instructions to boot the client using diagnostic softwarethat may perform a series of hardware and software test to determine thesource of the failure to boot.

The management controller 120 may receive an indication from the clientcomputing device 160 regarding the success or failure of the instructionto resolve the event. In some examples, a message indicating resolutionof the event may be received (e.g., using the LAN transceiver 145). Alog of the instructions transmitted to the client computing device 160may be stored (e.g., by the management controller 120) in the localstorage 135 (e.g., in the stored diagnostics log 150) and an indicationof the event and the instructions transmitted to the client device maybe transmitted to a computing device (e.g., computer, smartphone,tablet, remote management console 180, etc.). For example, anadministrator may receive an indication that the client computing device160 was unable to boot the OS and the client computing device 160 hadsent instructions to run a hard drive diagnostic and repair utilityresulting in resolution of the event (e.g., the client computing device160 booted the OS). Thus, the administrator may be provided withinformation to track the client computing device 160 in the early stagesof failure.

In some examples, a message indicating the instructions have notresolved the event may be received (e.g., using the LAN transceiver145). A log of the instructions transmitted to the client computingdevice 160 may be stored (e.g., by the management controller 120) in thelocal storage 135 (e.g., in the stored diagnostics log 150) and anindication of the event, the instructions transmitted to the clientdevice, and an indication that the instructions have not resolved theevent may be transmitted to a computing device (e.g., computer,smartphone, tablet, remote management console 180, etc.). For example,the administrator may receive an indication that the client deviceremains unable to boot the OS and the client device had sentinstructions to run a hard drive diagnostic and repair utility which didnot resolve the event (e.g., the client computing remains unable to bootthe OS). Thus, the administrator may be provided with information todetermine next steps in resolving the event.

FIG. 2 illustrates a flow diagram of an example of a process 200 forgateway assisted diagnostics and repair, according to an embodiment. Theprocess 200 may provide functionality similar to that described inFIG. 1. When an issue (e.g. boot failure or crash) is detected on amanaged client computing device 160 (e.g., a client computing device 160of the client computing devices 160 as described in FIG. 1) a managementcontroller coupled to client computing device detects the issue andperforms the following operations.

At operation 205, the management controller invokes the client computingdevice to request for help (e.g. through a fast call for help or clientinitiated request for assistance (CIRA) feature configured on themanaged client)

At operation 210, CIRA packets may be sent with a user defined internetprotocol (IP) address targeting PORT_M (e.g., reserved managementnetwork port 125 as described in FIG. 1) to the ingress LAN port (e.g.,a port of the LAN transceiver 145 as described in FIG. 1) of the agateway (e.g., the gateway 105 as described in FIG. 1).

At operation 215, the gateway filters the request for help packets fromits LAN network interface connected to one of its managed client andinvokes its managed client to perform one or more of the followingaction items: run a diagnostic and repair application from the localstorage (e.g., local storage 135 as described in FIG. 1) of the gatewayand try to resolve the issue, store diagnostics log files in the localstorage of the gateway, reboot or reset the client computing system,boot a backup OS/tools image from the local storage of the gateway, anyother user defined actions to utilize the gateway to assist indiagnosing and repairing the managed client.

At decision 220, it is determined if the auto-repair task utilizing thegateway was successful. If the auto-repair was successful, themanagement controller continues to operation 225. For example, themanagement controller of the client computing device may monitor theboot cycle of the client computing device and may determine that theoperating system has now booted. In another example, the managementcontroller of the client computing device may monitor a configurationoption of the client computing device and may determine that theconfiguration option is now set to a functioning value. At operation225, the repair logs are updated and a remote administrator is informedof the successful repair and the operation terminates at 230.

If it is determined at decision 220 that the auto-repair was notsuccessful, the management controller continues to operation 235. Atoperation 235, diagnostic results are stored in the local storage of thegateway device. If client computing device is not able to resolve theissue with the help of the gateway, then it may proceed, at operation240, to alert a remote administrator to perform additional diagnosticson the faulty client computing device. After operation 240 is completed,the process 200 may be complete and may end.

In some embodiments, diagnostic results and logs may be stored in thelocal storage of the gateway or a remote storage location as determinedby an IT administrator (irrespective of whether the issue can beresolved). The IT administrator may run additional diagnostics andrepair applications on the faulty client through a remote managementconsole 180 (e.g. Mesh Central or AMT/DASH compliant management console180). In some embodiments, the IT administrator may utilize thediagnostic results stored in the local storage of the gateway todetermine the next course of action to take to repair the managedclient. In some embodiments, the IT administrator may push additionaldiagnostics and repair applications or a more complete OS image into thelocal storage of the gateway and invoke the client computing system torerun the updated diagnostics and repair applications, or reboot usingthe updated OS image from the local storage of the gateway.

FIG. 3 illustrates an example of a method 300 for gateway assisteddiagnostics and repair, according to an embodiment. The method 300 maybe used to implement the features discussed in FIG. 1.

At operation 305, a request for assistance may be received from a clientdevice at a gateway device attached to a local area network (LAN) and awide area network (WAN). The request for assistance may include anindication of an event experienced by the client device.

At operation 310, the request for assistance may be forwarded to amanagement controller of the gateway device. In some examples, abroadcast data packet may be received using a LAN port of the gatewaydevice and the broadcast data packet may be identified as a request forassistance based on a port number included in a header of the broadcastdata packet. In an example, the broadcast data packet may be preventedfrom being forwarded to other LAN ports of the gateway device uponforwarding the request for assistance to the management controller. Insome examples, a data packet may be received that is destined for a WANinterface of the gateway device and the data packet destined for the WANinterface may be identified as a request for assistance based on a portnumber included in a header of the data packet destined for the WANinterface. In an example, the data packet destined for the WAN interfacemay be prevented from reaching the WAN interface upon forwarding therequest for assistance to the management controller.

At operation 315, instructions may be transmitted via the LAN to theclient device for resolving the event experienced by the client device.In some examples, the instructions to the client device for resolvingthe event may include instructions to run a diagnostic and repairapplication from a local storage device of the gateway device. In anexample, the instructions to the client device for resolving the eventmay include instructions to store diagnostic log files in a localstorage device of the gateway device. In an example, the instructions tothe client device for resolving the event may include instructions toreboot the client device. In an example, the instructions to the clientdevice for resolving the event may include instructions to reset theclient device. In an example, the instructions to the client device forresolving the event may include instructions to boot the client devicefrom an operating system image stored in a local storage device of thegateway device. In an example, the instructions to the client device forresolving the event may include instructions to boot the client deviceusing a diagnostic software package stored in a local storage device ofthe gateway device.

In some examples, a message indicating resolution of the event may bereceived from the client device. A log of the instructions transmittedto the client device may be stored in a local storage device of thegateway device and an indication of the event and the instructionstransmitted to the client device may be transmitted to a computingdevice. In some examples, a message indicating the instructions have notresolved the event may be received from the client device. A log of theinstructions transmitted to the client device may be stored in a localstorage device of the gateway device and an indication of the event, theinstructions transmitted to the client device, and an indication thatthe instructions have not resolved the event may be transmitted to acomputing device.

FIG. 4 is a drawing of a cloud computing network, or cloud 400, incommunication with a mesh network of IoT devices 402, that may be termeda fog 420, operating at the edge of the cloud 400, To simplify thediagram, not every IoT device 402 is labeled.

The fog 420 may be considered to be a massively interconnected networkwherein a number of IoT devices 402 are in communications with eachother, for example, by radio links 422. This may be performed using theopen interconnect consortium (OW) standard specification 3.0 released bythe Open Connectivity Foundation™ (OCF) on Dec. 23, 2015. This standardallows devices to discover each other and establish communications forinterconnects. Other interconnection protocols may also be used,including, for example, the optimized link state routing (OLSR)Protocol, or the better approach to mobile ad-hoc networking(B.A.T.M.A.N.), among others.

Three types of IoT devices 402 are shown in this example, gateways 424,data aggregators 426, and sensors 428, although any combinations of IoTdevices 402 and functionality may be used. The gateways 424 may be edgedevices that provide communications between the cloud 400 and the fog420, and may also provide the backend process function for data obtainedfrom sensors 428, such as motion data, flow data, temperature data, andthe like. The data aggregators 426 may collect data from any number ofthe sensors 428, and perform the back end processing function for theanalysis. The results, raw data, or both may be passed along to thecloud 400 through the gateways 424. The sensors 428 may be full IoTdevices 402, for example, capable of both collecting data and processingthe data. In some cases, the sensors 428 may be more limited infunctionality, for example, collecting the data and allowing the dataaggregators 426 or gateways 424 to process the data.

Communications from any IoT device 402 may be passed along the mostconvenient path between any of the IoT devices 402 to reach the gateways424. In these networks, the number of interconnections providesubstantial redundancy, allowing communications to be maintained, evenwith the loss of a number of IoT devices 402. Further, the use of a meshnetwork may allow IoT devices 402 that are very low power or located ata distance from infrastructure to be used, as the range to connect toanother IoT device 402 may be much less than the range to connect to thegateways 424.

The fog 420 of these IoT devices 402 devices may be presented to devicesin the cloud 400, such as a server 404, as a single device located atthe edge of the cloud 400, e.g., a fog 420 device. In this example, thealerts coming from the fog 420 device may be sent without beingidentified as coming from a specific IoT device 402 within the fog 420.

In some examples, the IOT devices 402 may be configured using animperative programming style, e.g., with each IOT device 402 having aspecific function and communication partners. However, the IOT devices402 forming the fog 420 device may be configured in a declarativeprogramming style, allowing the IoT devices 402 to reconfigure theiroperations and communications, such as to determine needed resources inresponse to conditions, queries, and device failures. As an example, aquery from a user located at a server 404 about the operations of asubset of equipment monitored by the IoT devices 402 may result in thefog 420 device selecting the IoT devices 402, such as particular sensors428, needed to answer the query. The data from these sensors 428 maythen be aggregated and analyzed by any combination of the sensors 428,data aggregators 426, or gateways 424, before being sent on by the fog420 device to the server 404 to answer the query. In this example, IoTdevices 402 in the fog 420 may select the sensors 428 used based on thequery, such as adding data from flow sensors or temperature sensors.Further, if some of the IoT devices 402 are not operational, other IoTdevices 402 in the fog 420 device may provide analogous data, ifavailable.

FIG. 5 illustrates a block diagram of an example machine 500 upon whichany one or more of the techniques (e.g., methodologies) discussed hereinmay perform. In alternative embodiments, the machine 500 may operate asa standalone device or may be connected (e.g., networked) to othermachines. In a networked deployment, the machine 500 may operate in thecapacity of a server machine, a client machine, or both in server-clientnetwork environments. In an example, the machine 500 may act as a peermachine in peer-to-peer (P2P) (or other distributed) networkenvironment. The machine 500 may be a personal computer (PC), a tabletPC, a set-top box (STB), a personal digital assistant (PDA), a mobiletelephone, a web appliance, a network router, switch or bridge, or anymachine capable of executing instructions (sequential or otherwise) thatspecify actions to be taken by that machine. Further, while only asingle machine is illustrated, the term “machine” shall also be taken toinclude any collection of machines that individually or jointly executea set (or multiple sets) of instructions to perform any one or more ofthe methodologies discussed herein, such as cloud computing, software asa service (SaaS), other computer cluster configurations.

Examples, as described herein, may include, or may operate by, logic ora number of components, or mechanisms. Circuit sets are a collection ofcircuits implemented in tangible entities that include hardware (e.g.,simple circuits, gates, logic, etc.). Circuit set membership may beflexible over time and underlying hardware variability. Circuit setsinclude members that may, alone or in combination, perform specifiedoperations when operating. In an example, hardware of the circuit setmay be immutably designed to carry out a specific operation (e.g.,hardwired). In an example, the hardware of the circuit set may includevariably connected physical components (e.g., execution units,transistors, simple circuits, etc.) including a computer readable mediumphysically modified (e.g., magnetically, electrically, moveableplacement of invariant massed particles, etc.) to encode instructions ofthe specific operation. In connecting the physical components, theunderlying electrical properties of a hardware constituent are changed,for example, from an insulator to a conductor or vice versa. Theinstructions enable embedded hardware (e.g., the execution units or aloading mechanism) to create members of the circuit set in hardware viathe variable connections to carry out portions of the specific operationwhen in operation. Accordingly, the computer readable medium iscommunicatively coupled to the other components of the circuit setmember when the device is operating. In an example, any of the physicalcomponents may be used in more than one member of more than one circuitset. For example, under operation, execution units may be used in afirst circuit of a first circuit set at one point in time and reused bya second. circuit in the first circuit set, or by a third circuit in asecond circuit set at a different time.

Machine (e.g., computer system) 500 may include a hardware processor 502(e.g., a central processing unit (CPU), a graphics processing unit(GPU), a hardware processor core, or any combination thereof), a mainmemory 504 and a static memory 506, some or all of which may communicatewith each other via an interlink (e.g., bus) 508. The machine 500 mayfurther include a display unit 510, an alphanumeric input device 512(e.g., a keyboard), and a user interface (UI) navigation device 514(e.g., a mouse). In an example, the display unit 510, input device 512and UI navigation device 514 may be a touch screen display. The machine500 may additionally include a storage device (e.g., drive unit) 516, asignal generation device 518 (e.g., a speaker), a network interfacedevice 520, and. one or more sensors 521, such as a global positioningsystem (GPS) sensor, compass, accelerometer, or other sensor. Themachine 500 may include an output controller 528, such as a serial(e.g., universal serial bus (USB), parallel, or other wired or wireless(e.g., infrared (IR), near field communication (NFC), etc.) connectionto communicate or control one or more peripheral devices (e.g., aprinter, card reader, etc.).

The storage device 516 may include a machine readable medium 522 onwhich is stored one or more sets of data structures or instructions 524(e.g., software) embodying or utilized by any one or more of thetechniques or functions described herein. The instructions 524 may alsoreside, completely or at least partially, within the main memory 504,within static memory 506, or within the hardware processor 502 duringexecution thereof by the machine 500. In an example, one or anycombination of the hardware processor 502, the main memory 504, thestatic memory 506, or the storage device 516 may constitute machinereadable media.

While the machine readable medium 522 is illustrated as a single medium,the term “machine readable medium” may include a single medium ormultiple media (e.g., a centralized or distributed database, and/orassociated caches and servers) configured to store the one or moreinstructions 524.

The term “machine readable medium” may include any medium that iscapable of storing, encoding, or carrying instructions for execution bythe machine 500 and that cause the machine 500 to perform any one ormore of the techniques of the present disclosure, or that is capable ofstoring, encoding or carrying data structures used by or associated withsuch instructions. Non-limiting machine readable medium examples mayinclude solid-state memories, and optical and magnetic media. In anexample, a massed machine readable medium comprises a machine readablemedium with a plurality of particles having invariant (e.g., rest) mass.Accordingly, massed machine-readable media are not transitorypropagating signals. Specific examples of massed machine readable mediamay include: non-volatile memory, such as semiconductor memory devices(e.g., Electrically Programmable Read-Only Memory (EPROM), ElectricallyErasable Programmable Read-Only Memory (EEPROM)) and flash memorydevices; magnetic disks, such as internal hard disks and removabledisks; magneto-optical disks; and CD-ROM and DVD-ROM disks.

The instructions 524 may further be transmitted or received over acommunications network 526 using a transmission medium via the networkinterface device 520 utilizing any one of a number of transfer protocols(e.g., frame relay, internet protocol (IP), transmission controlprotocol (TCP), user datagram protocol (UDP), hypertext transferprotocol (HTTP), etc.). Example communication networks may include alocal area network (LAN), a wide area network (WAN), a packet datanetwork (e.g., the Internet), mobile telephone networks (e.g., cellularnetworks), Plain Old Telephone (POTS) networks, and wireless datanetworks (e.g., Institute of Electrical and Electronics Engineers (IEEE)802.11 family of standards known as Wi-Fi®, IEEE 802.16 family ofstandards known as WiMax®), IEEE 802.15.4 family of standards,peer-to-peer (P2P) networks, among others. In an example, the networkinterface device 520 may include one or more physical jacks (e.g.,Ethernet, coaxial, or phone jacks) or one or more antennas to connect tothe communications network 526. In an example, the network interfacedevice 520 may include a plurality of antennas to wirelessly communicateusing at least one of single-input multiple-output (SIMO),multiple-input multiple-output (MIMO), or multiple-input single-output(MISO) techniques. The term “transmission medium” shall be taken toinclude any intangible medium that is capable of storing, encoding orcarrying instructions for execution by the machine 500, and includesdigital or analog communications signals or other intangible medium tofacilitate communication of such software.

Additional Notes & Examples

Example 1 is a method for gateway assisted diagnostics and repair, themethod comprising: receiving, at a gateway device attached to a localarea network (LAN) and a wide area network (WAN), a request forassistance from a client device, the request for assistance including anindication of an event experienced by the client device; forwarding therequest for assistance to a management controller of the gateway device;and transmitting, via the LAN, instructions to the client device forresolving the event experienced by the client device.

In Example 2, the subject matter of Example 1 optionally includeswherein receiving the request for assistance comprises: receiving a datapacket using a LAN port of the gateway device; and identifying the datapacket as a request for assistance based on a port number included in aheader of the broadcast data packet.

In Example 3, the subject matter of Example 2 optionally includeswherein the data packet is a LAN broadcast data packet or a data packetdestined for a WAN interface of the gateway device.

In Example 4, the subject matter of any one or more of Examples 2-3optionally include preventing the data packet from being forwarded toother LAN ports or WAN interfaces of the gateway device upon forwardingthe request for assistance to the management controller.

In Example 5, the subject matter of any one or more of Examples 1-4optionally include rejecting data packets received from the WANinterface of the gateway as a request for assistance.

In Example 6, the subject matter of any one or more of Examples 1-5optionally include wherein transmitting the instructions to the clientdevice for resolving the event includes transmitting instructions to runa diagnostic and repair application from a local storage device of thegateway device.

In Example 7, the subject matter of any one or more of Examples 1-6optionally include wherein transmitting the instructions to the clientdevice for resolving the event includes transmitting instructions tostore diagnostic log files in a local storage device of the gatewaydevice.

In Example 8, the subject matter of any one or more of Examples 1-7optionally include wherein transmitting the instructions to the clientdevice for resolving the event includes transmitting instructions toreboot the client device.

In Example 9, the subject matter of any one or more of Examples 1-8optionally include wherein transmitting the instructions to the clientdevice for resolving the event includes transmitting instructions toreset the client device.

In Example 10, the subject matter of any one or more of Examples 1-9optionally include wherein transmitting the instructions to the clientdevice for resolving the event includes transmitting instructions toboot the client device from an operating system image stored in a localstorage device of the gateway device.

In Example 11, the subject matter of any one or more of Examples 1-10optionally include wherein transmitting the instructions to the clientdevice for resolving the event includes transmitting instructions toboot the client device using a diagnostic software package stored in alocal storage device of the gateway device.

In Example 12, the subject matter of any one or more of Examples 1-11optionally include receiving, from the client device, a messageindicating resolution of the event; storing, in a local storage deviceof the gateway device, a log of the instructions transmitted to theclient device, and transmitting, to a remote computing device over theWAN, an indication of the event and the instructions transmitted to theclient device.

In Example 13, the subject matter of any one or more of Examples 1-12optionally include receiving, from the client device, a messageindicating the instructions have not resolved the event; storing, in alocal storage device of the gateway device, a log of the instructionstransmitted to the client device, and transmitting, to a remotecomputing device over the WAN, an indication of the event, theinstructions transmitted to the client device, and an indication thatthe instructions have not resolved the event.

Example 14 is a system to implement gateway assisted diagnostics andrepair, the system comprising means to perform any method of Examples1-13.

Example 15 is at least one machine readable medium to implement gatewayassisted diagnostics and repair, the at least one machine readablemedium including instructions that, when executed by a machine, causethe machine to perform any method of Examples 1-13.

Example 16 is a system for gateway assisted diagnostics and repair, thesystem comprising: at least one processor; and a memory comprisinginstructions that, when executed by the at least one processor, causethe at least one processor to perform operations to: receive, at agateway device attached to a local area network (LAN) and a wide areanetwork (WAN), a request for assistance from a client device, therequest for assistance including an indication of an event experiencedby the client device; forward the request for assistance to a managementcontroller of the gateway device; and transmit, via the LAN,instructions to the client device for resolving the event experienced bythe client device.

In Example 17, the subject matter of Example 16 optionally includeswherein to receive the request for assistance, the operations includeinstructions to: receive a data packet using a LAN port of the gatewaydevice; and identify the data packet as a request for assistance basedon a port number included in a header of the broadcast data packet.

In Example 18, the subject matter of Example 17 optionally includeswherein the data packet is a LAN broadcast data packet or a data packetdestined for a WAN interface of the gateway device.

In Example 19, the subject matter of any one or more of Examples 17-18optionally include operations to prevent the data packet from beingforwarded to other LAN ports or WAN interfaces of the gateway deviceupon forwarding the request for assistance to the management controller.

In Example 20, the subject matter of any one or more of Examples 16-19optionally include rejecting a data packets received from the WANinterface of the gateway as a request for assistance.

In Example 21, the subject matter of any one or more of Examples 16-20optionally include wherein the instructions to the client device forresolving the event include instructions to run a diagnostic and repairapplication from a local storage device of the gateway device.

In Example 22, the subject matter of any one or more of Examples 16-21optionally include wherein the instructions to the client device forresolving the event include instructions to store diagnostic log filesin a local storage device of the gateway device.

In Example 23, the subject matter of any one or more of Examples 16-22optionally include wherein the instructions to the client device forresolving the event include instructions to reboot the client device.

In Example 24, the subject matter of any one or more of Examples 16-23optionally include wherein the instructions to the client device forresolving the event include instructions to reset the client device.

In Example 25, the subject matter of any one or more of Examples 16-24optionally include wherein the instructions to the client device forresolving the event include instructions to boot the client device froman operating system image stored in a local storage device of thegateway device.

In Example 26, the subject matter of any one or more of Examples 16-25optionally include wherein the instructions to the client device forresolving the event include instructions to boot the client device usinga diagnostic software package stored in a local storage device of thegateway device.

In Example 27, the subject matter of any one or more of Examples 16-26optionally include operations to: receive, from the client device, amessage indicating resolution of the event; store, in a local storagedevice of the gateway device, a log of the instructions transmitted tothe client device, and transmit, to a remote computing device over theWAN, an indication of the event and the instructions transmitted to theclient device.

In Example 28, the subject matter of any one or more of Examples 16-27optionally include operations to: receive, from the client device, amessage indicating the instructions have not resolved the event; store,in a local storage device of the gateway device, a log of theinstructions transmitted to the client device, and transmit, to a remotecomputing device, an indication of the event, the instructionstransmitted to the client device, and an indication that theinstructions have not resolved the event.

Example 29 is at least one machine readable medium includinginstructions for gateway assisted diagnostics and repair that, whenexecuted by a machine, cause the machine to perform: receive, at agateway device attached to a local area network (LAN) and a wide areanetwork (WAN), a request for assistance from a client device, therequest for assistance including an indication of an event experiencedby the client device; forward the request for assistance to a managementcontroller of the gateway device; and transmit, via the LAN,instructions to the client device for resolving the event experienced bythe client device.

In Example 30, the subject matter of Example 29 optionally includeswherein the instructions to receive the request for assistance includeinstructions to: receive a broadcast data packet using a LAN port of thegateway device; and identify the broadcast data packet as a request forassistance based on a port number included in a header of the broadcastdata packet.

In Example 31, the subject matter of Example 30 optionally includeswherein the data packet is a LAN broadcast data packet or a data packetdestined for a WAN interface of the gateway device.

In Example 32, the subject matter of any one or more of Examples 30-31optionally include operations to prevent the data packet from beingforwarded to other LAN ports or WAN interfaces of the gateway deviceupon forwarding the request for assistance to the management controller.

In Example 33, the subject matter of any one or more of Examples 29-32optionally include instructions to reject data packets received from theWAN interface of the gateway as a request for assistance.

In Example 34, the subject matter of any one or more of Examples 29-33optionally include wherein the instructions to the client device forresolving the event include instructions to run a diagnostic and repairapplication from a local storage device of the gateway device.

In Example 35, the subject matter of any one or more of Examples 29-34optionally include wherein the instructions to the client device forresolving the event include instructions to store diagnostic log filesin a local storage device of the gateway device.

In Example 36, the subject matter of any one or more of Examples 29-35optionally include wherein the instructions to the client device forresolving the event include instructions to reboot the client device.

In Example 37, the subject matter of any one or more of Examples 29-36optionally include wherein the instructions to the client device forresolving the event include instructions to reset the client device.

In Example 38, the subject matter of any one or more of Examples 29-37optionally include wherein the instructions to the client device forresolving the event include instructions to boot the client device froman operating system image stored in a local storage device of thegateway device.

In Example 39, the subject matter of any one or more of Examples 29-38optionally include wherein the instructions to the client device forresolving the event include instructions to boot the client device usinga diagnostic software package stored in a local storage device of thegateway device.

In Example 40, the subject matter of any one or more of Examples 29-39optionally include operations to: receive, from the client device, amessage indicating resolution of the event; store, in a local storagedevice of the gateway device, a log of the instructions transmitted tothe client device, and transmit, to a remote computing device over theWAN, an indication of the event and the instructions transmitted to theclient device.

In Example 41, the subject matter of any one or more of Examples 29-40optionally include operations to: receive, from the client device, amessage indicating the instructions have not resolved the event; store,in a local storage device of the gateway device, a log of theinstructions transmitted to the client device, and transmit, to a remotecomputing device, an indication of the event, the instructionstransmitted to the client device, and an indication that theinstructions have not resolved the event.

Example 42 is a gateway device for gateway assisted diagnostics andrepair, the gateway device comprising: at least one processor; a storagedevice; a local area network (LAN) transceiver; a wide area network(WAN) transceiver; a management controller; and a memory comprisinginstructions that, when executed by the at least one processor, causethe at least one processor to perform operations to: receive a requestfor assistance from a client device, the request for assistanceincluding an indication of an event experienced by the client device;forward the request for assistance to the management controller; andtransmit, via the LAN transceiver, instructions to the client device forresolving the event experienced by the client device.

In Example 43, the subject matter of Example 42 optionally includeswherein to receive the request for assistance, the operations includeinstructions to: receive a data packet using, via the LAN transceiver;and identify the data packet as a request for assistance based on a portnumber included in a header of the broadcast data packet.

In Example 44, the subject matter of Example 43 optionally includeswherein the data packet is a LAN broadcast data packet or a data packetdestined for a WAN interface of the gateway device.

In Example 45, the subject matter of any one or more of Examples 43-44optionally include operations to prevent the data packet from beingforwarded to other client devices on the LAN or WAN interfaces uponforwarding the request for assistance to the management controller.

In Example 46, the subject matter of any one or more of Examples 42-45optionally include operations to reject data packets received from theWAN interface of the gateway as a request for assistance.

In Example 47, the subject matter of any one or more of Examples 42-46optionally include wherein the instructions to the client device forresolving the event include instructions to run a diagnostic and repairapplication from the storage device.

In Example 48, the subject matter of any one or more of Examples 42-47optionally include wherein the instructions to the client device forresolving the event include instructions to store diagnostic log filesin the storage device.

In Example 49, the subject matter of any one or more of Examples 42-48optionally include wherein the instructions to the client device forresolving the event include instructions to reboot the client device.

In Example 50, the subject matter of any one or more of Examples 42-49optionally include wherein the instructions to the client device forresolving the event include instructions to reset the client device.

In Example 51, the subject matter of any one or more of Examples 42-50optionally include wherein the instructions to the client device forresolving the event include instructions to boot the client device froman operating system image stored in the storage device.

In Example 52, the subject matter of any one or more of Examples 42-51optionally include wherein the instructions to the client device forresolving the event include instructions to boot the client device usinga diagnostic software package stored in the storage device.

In Example 53, the subject matter of any one or more of Examples 42-52optionally include operations to: receive, from the client device, amessage indicating resolution of the event; store, in the storagedevice, a log of the instructions transmitted to the client device, andtransmit, to a remote computing device over the WAN, an indication ofthe event and the instructions transmitted to the client device.

In Example 54, the subject matter of any one or more of Examples 42-53optionally include operations to: receive, from the client device, amessage indicating the instructions have not resolved the event; store,in the storage device, a log of the instructions transmitted to theclient device, and transmit, to a remote computing device, an indicationof the event, the instructions transmitted to the client device, and anindication that the instructions have riot resolved the event.

Example 55 is an apparatus for gateway assisted diagnostics and repair,the apparatus comprising: means for receiving, at a gateway deviceattached to a local area network (LAN) and a wide area network (WAN), arequest for assistance from a client device, the request for assistanceincluding an indication of an event experienced by the client device;means for forwarding the request for assistance to a managementcontroller of the gateway device; and means for transmitting, via theLAN, instructions to the client device for resolving the eventexperienced by the client device.

In Example 56, the subject matter of Example 55 optionally includeswherein the means for receiving the request for assistance comprises:means for receiving a data packet using a LAN port of the gatewaydevice; and means for identifying the data packet as a request forassistance based on a port number included in a header of the broadcastdata packet.

In Example 57, the subject matter of Example 56 optionally includeswherein the data packet is a LAN broadcast data packet or a data packetdestined for a WAN interface of the gateway device.

In Example 58, the subject matter of any one or more of Examples 56-57optionally include means for preventing the data packet from beingforwarded to other LAN ports or WAN interfaces of the gateway deviceupon forwarding the request for assistance to the management controller.

In Example 59, the subject matter of any one or more of Examples 55-58optionally include means for rejecting data packets received from theWAN interface of the gateway as a request for assistance.

In Example 60, the subject matter of any one or more of Examples 55-59optionally include wherein the instructions to the client device forresolving the event include instructions to run a diagnostic and repairapplication from a local storage device of the gateway device.

In Example 61, the subject matter of any one or more of Examples 55-60optionally include wherein the instructions to the client device forresolving the event include instructions to store diagnostic log filesin a local storage device of the gateway device.

In Example 62, the subject matter of any one or more of Examples 55-61optionally include wherein the instructions to the client device forresolving the event include instructions to reboot the client device.

In Example 63, the subject matter of any one or more of Examples 55-62optionally include wherein the instructions to the client device forresolving the event include instructions to reset the client device.

In Example 64, the subject matter of any one or more of Examples 55-63optionally include wherein the instructions to the client device forresolving the event include instructions to boot the client device froman operating system image stored in a local storage device of thegateway device.

In Example 65, the subject matter of any one or more of Examples 55-64optionally include wherein the instructions to the client device forresolving the event include instructions to boot the client device usinga diagnostic software package stored in a local storage device of thegateway device.

In Example 66, the subject matter of any one or more of Examples 55-65optionally include means for receiving, from the client device, amessage indicating resolution of the event; means for storing, in alocal storage device of the gateway device, a log of the instructionstransmitted to the client device, and means for transmitting, to aremote computing device over the WAN, an indication of the event and theinstructions transmitted to the client device.

In Example 67, the subject matter of any one or more of Examples 55-66optionally include means for receiving, from the client device, amessage indicating the instructions have not resolved the event; meansfor storing, in a local storage device of the gateway device, a log ofthe instructions transmitted to the client device, and means fortransmitting, to a remote computing device, an indication of the event,the instructions transmitted to the client device, and an indicationthat the instructions have not resolved the event.

Example 68 is a system comprising means for performing the operations ofany one or more of examples 1-67.

Example 69 is a non-transitory machine readable medium includinginstructions that, when executed by a machine cause the machine toperform the operations of any one or more of examples 1-67.

Example 70 is a system configured to perform operations of any one ormore of examples 1-67.

Example 71 is a method for performing operations of any one or more ofexamples 1-67.

The above detailed description includes references to the accompanyingdrawings, which form a part of the detailed description. The drawingsshow, by way of illustration, specific embodiments that may bepracticed. These embodiments are also referred to herein as “examples.”Such examples may include elements in addition to those shown ordescribed. However, the present inventors also contemplate examples inwhich only those elements shown or described are provided. Moreover, thepresent inventors also contemplate examples using any combination orpermutation of those elements shown or described (or one or more aspectsthereof), either with respect to a particular example (or one or moreaspects thereof), or with respect to other examples (or one or moreaspects thereof) shown or described herein.

All publications, patents, and patent documents referred to in thisdocument are incorporated by reference herein in their entirety, asthough individually incorporated by reference. In the event ofinconsistent usages between this document and those documents soincorporated by reference, the usage in the incorporated reference(s)should be considered supplementary to that of this document; forirreconcilable inconsistencies, the usage in this document controls.

In this document, the terms “a” or “an” are used, as is common in patentdocuments, to include one or more than one, independent of any otherinstances or usages of “at least one” or “one or more.” In thisdocument, the term “or” is used to refer to a nonexclusive or, such that“A or B” includes “A but not B,” “B but not A,” and “A and B,” unlessotherwise indicated. In the appended claims, the terms “including” and“in which” are used as the plain-English equivalents of the respectiveterms “comprising” and “wherein.” Also, in the following claims, theterms “including” and “comprising” are open-ended, that is, a system,device, article, or process that includes elements in addition to thoselisted after such a term in a claim are still deemed to fall within thescope of that claim. Moreover, in the following claims, the terms“first,” “second,” and “third,” etc. are used merely as labels, and arenot intended to impose numerical requirements on their objects.

The above description is intended to be illustrative, and notrestrictive. For example, the above-described examples (or one or moreaspects thereof) may be used in combination with each other. Otherembodiments may be used, such as by one of ordinary skill in the artupon reviewing the above description. The Abstract is to allow thereader to quickly ascertain the nature of the technical disclosure andis submitted with the understanding that it will not be used tointerpret or limit the scope or meaning of the claims. Also, in theabove Detailed Description, various features may be grouped together tostreamline the disclosure. This should not be interpreted as intendingthat an unclaimed disclosed feature is essential to any claim. Rather,inventive subject matter may lie in less than all features of aparticular disclosed embodiment. Thus, the following claims are herebyincorporated into the Detailed Description, with each claim standing onits own as a separate embodiment. The scope of the embodiments should bedetermined with reference to the appended claims, along with the fullscope of equivalents to which such claims are entitled.

What is claimed is:
 1. A system for gateway assisted diagnostics andrepair, the system comprising: at least one processor; and a memorycomprising instructions that, when executed by the at least oneprocessor, cause the at least one processor to perform operations to:receive, at a gateway device attached to a local area network (LAN) anda wide area network (WAN), a request for assistance from a clientdevice, the request for assistance including an indication of an eventexperienced by the client device; forward the request for assistance toa management controller of the gateway device; and transmit, via theLAN, instructions to the client device for resolving the eventexperienced by the client device.
 2. The system of claim 1, wherein toreceive the request for assistance, the operations include instructionsto: receive a data packet using a LAN port of the gateway device; andidentify the data packet as a request for assistance based on a portnumber included in a header of the broadcast data packet.
 3. The systemof claim 2, wherein the data packet is a LAN broadcast data packet or adata packet destined for a WAN interface of the gateway device.
 4. Thesystem of claim 2, further comprising operations to prevent the datapacket from being forwarded to other LAN ports or WAN interfaces of thegateway device upon forwarding the request for assistance to themanagement controller.
 5. The system of claim 1, further comprisingrejecting a data packets received from the WAN interface of the gatewayas a request for assistance.
 6. The system of claim 1, wherein theinstructions to the client device for resolving the event includeinstructions to run a diagnostic and repair application from a localstorage device of the gateway device.
 7. The system of claim 1, whereinthe instructions to the client device for resolving the event includeinstructions to store diagnostic log files in a local storage device ofthe gateway device.
 8. The system of claim 1, wherein the instructionsto the client device for resolving the event include instructions toreboot the client device.
 9. The system of claim 1, wherein theinstructions to the client device for resolving the event includeinstructions to reset the client device.
 10. The system of claim 1,wherein the instructions to the client device for resolving the eventinclude instructions to boot the client device from an operating systemimage stored in a local storage device of the gateway device.
 11. Thesystem of claim 1, wherein the instructions to the client device forresolving the event include instructions to boot the client device usinga diagnostic software package stored in a local storage device of thegateway device.
 12. The system of claim 1, further comprising operationsto: receive, from the client device, a message indicating resolution ofthe event; store, in a local storage device of the gateway device, a logof the instructions transmitted to the client device, and transmit, to aremote computing device over the WAN, an indication of the event and theinstructions transmitted to the client device.
 13. The system of claim1, further comprising operations to: receive, from the client device, amessage indicating the instructions have not resolved the event; store,in a local storage device of the gateway device, a log of theinstructions transmitted to the client device, and transmit, to a remotecomputing device, an indication of the event, the instructionstransmitted to the client device, and an indication that theinstructions have not resolved the event.
 14. A method for gatewayassisted diagnostics and repair, the method comprising: receiving, at agateway device attached to a local area network (LAN) and a wide areanetwork (WAN), a request for assistance from a client device, therequest for assistance including an indication of an event experiencedby the client device; forwarding the request for assistance to amanagement controller of the gateway device; and transmitting, via theLAN, instructions to the client device for resolving the eventexperienced by the client device.
 15. The method of claim 14, whereinreceiving the request for assistance comprises: receiving a data packetusing a LAN port of the gateway device; and identifying the data packetas a request for assistance based on a port number included in a headerof the broadcast data packet.
 16. The method of claim 15, wherein thedata packet is a LAN broadcast data packet or a data packet destined fora WAN interface of the gateway device.
 17. The method of claim 15,further comprising preventing the data packet from being forwarded toother LAN ports or WAN interfaces of the gateway device upon forwardingthe request for assistance to the management controller.
 18. The methodof claim 14, further comprising rejecting data packets received from theWAN interface of the gateway as a request for assistance.
 19. The methodof claim 14, wherein transmitting the instructions to the client devicefor resolving the event includes transmitting instructions to run adiagnostic and repair application from a local storage device of thegateway device.
 20. The method of claim 14, wherein transmitting theinstructions to the client device for resolving the event includestransmitting instructions to store diagnostic log files in a localstorage device of the gateway device.
 21. At least one machine readablemedium including instructions for gateway assisted diagnostics andrepair that, when executed by a machine, cause the machine to perform:receive, at a gateway device attached to a local area network (LAN) anda wide area network (WAN), a request for assistance from a clientdevice, the request for assistance including an indication of an eventexperienced by the client device; forward the request for assistance toa management controller of the gateway device; and transmit, via theLAN, instructions to the client device for resolving the eventexperienced by the client device.
 22. The at least one machine readablemedium of claim 21, wherein the instructions to receive the request forassistance include instructions to: receive a broadcast data packetusing a LAN port of the gateway device; and identify the broadcast datapacket as a request for assistance based on a port number included in aheader of the broadcast data packet.
 23. The at least one machinereadable medium of claim 22, wherein the data packet is a LAN broadcastdata packet or a data packet destined for a WAN interface of the gatewaydevice.
 24. The at least one machine readable medium of claim 22,further comprising operations to prevent the data packet from beingforwarded to other LAN ports or WAN interfaces of the gateway deviceupon forwarding the request for assistance to the management controller.25. The at least one machine readable medium of claim 21, furthercomprising instructions to reject data packets received from the WANinterface of the gateway as a request for assistance.